/*
 *  IWilEventoCallback.h
 *  Wilson
 *
 *  Created by Sebastian Orfino on 9/13/11.
 *  Copyright 2011 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef __IWILEVENTOCALLBACK__
#define __IWILEVENTOCALLBACK__

#include "boost/function.hpp"
#include "adobe/zuid.hpp"
#include <functional>

namespace csxs { namespace event { struct Event; } } //forward
namespace wilson {

	/** Interfaz que deben implementar todos los interesados en gestionar un evento de CSXS */
	class handler_functor : public std::unary_function<void, const csxs::event::Event * const> {
		
		adobe::zuid_t uid_;
		
	public:
		
		virtual void operator()(const csxs::event::Event * const eventParam) = 0;
		inline bool operator==(const handler_functor& otro) const throw() { return otro.uid_ == uid_; }
	};
	
}

#endif //__IWILEVENTOCALLBACK__
